package com.guoxin.principle.single;

/**
 * 对类来说，即一个类应该只负责一项职责。如果类A负责两个不同的职责：
 * 职责1，职责2。当职责1需要变更而改变A时，可能造成职责2的执行错误，
 * 所有需要将A类的粒度分解为A1，A2
 *
 * @author guoxin
 * @date 2019/8/14
 */
public class SingleResponsibility1 {
    public static void main(String[] args) {
        Vehicle v = new Vehicle();
        v.run("摩托车");
        v.run("汽车");
        v.run("飞机");
    }

    /**
     * 交通工具类
     * 方式1
     * 1.在方式1的run方法中，违反了单一职责原子
     * 2.解决的方案非常简单，根据交通工具行为方式不同，分解成不同类即可
     */
    private static class Vehicle {

        public void run(String vehicle) {
            System.out.println(vehicle + ",在公路上行驶...");
        }
    }
}


